In the field of distributed computing, individual computers are typically linked together to form a computing cluster for the purpose of solving computationally-extensive problems. A computing cluster typically consists of a front end node and multiple compute nodes. Under this arrangement, the front end node typically allocates a problem to the compute nodes by dividing the problem into multiple tasks and distributing those tasks amongst the compute nodes for processing.
According to one technique for task allocation, the front end node divides a problem into equally-sized tasks and distributes the tasks to the compute nodes for processing. Upon distribution of the tasks, the front end node waits for the compute nodes to complete their assigned tasks, and to transmit the results back to the front end node for further processing.